package com.feeyo.groundservice.http.core

/**
 *作者：QLH on 2023-09-14
 *描述：最外层的model字段结构
 */

/**
 * 这个可以自己在application实现全局的接口
 *
 *NetClientUtil.setBaseBean(object : IBaseBean {
 *             override fun getCodeKey(): String {
 *                 return "errorCode"
 *             }
 *
 *             override fun getMsgKey(): String {
 *                return "errorMsg"
 *             }
 *
 *             override fun getDataKey(): String {
 *               return "data"
 *             }
 *
 *             override fun isRequestSuccess(code: Int): Boolean {
 *                 return code == 0
 *             }
 *
 *         })
 *
 *
 * 根据自己服务器业务的定义来变动
 *
 * 如果不指定的还就得自己进行适配，如
 *
 * data class ResultBO(
 *     val errorCode:Int,
 *     val errorMsg:String,
 *     val data:List<Any>
 * )
 *
 * @GET("banner/json")
 *     suspend fun getBanner(): HttpResult<ResultBO>
 * **/
interface IBaseBean {

    /**获取业务状态码字段名称**/
    fun getCodeKey(): String

    /**获取业务信息字段名称**/
    fun getMsgKey(): String

    /**获取业务数据字段名称，一般会命名为result data**/
    fun getDataKey(): String

    /**服务器时间名称**/
    fun getServerTimeKey(): String

    /**
     *业务请求成功的code，我司一般是0
     *
     *这里的成功是指业务请求的成功，请和Http response Code 区分，即200，3xx，5xx
     * **/
    fun isRequestSuccess(code: Int): Boolean

    /**是否有code字段，默认有,加入不要求code，那么isRequestSuccess默认给666标识**/
    fun hasCodeKey(): Boolean = true

    /**是否有消息字段，默认有**/
    fun hasMsgKey(): Boolean = true
}